package GUI;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;

import odpgl.Implementacion;
import pedidos.Pedido;
import sun.misc.GC.LatencyRequest;
import mapa.Coordenada;
import mapa.Direccion;
import clientes.Cliente;

import java.awt.Font;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AgregarPedidos extends JDialog 
{

	public Implementacion pedidosGeoLoc = new Implementacion();
	boolean bandera = false;
	
	public Cliente buscado;
	private JTextField textTelefono;
	private JTextField textContacto;
	private JTextField editarCalle;
	private JTextField textAltura;
	private JTextField textEditarLocalidad;
	private JTextField textProvincia;
	private JTextField textLongitud;
	private JTextField textLatitud;
	
	
	public static void main(String[] args) {
		try {
			buscarClientes dialog = new buscarClientes();
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	
	

	public AgregarPedidos() 
		 
	{
		setBounds(260, 150, 800, 500);
		getContentPane().setLayout(null);
		
	
		
		
		
		JLabel lblBuscar = new JLabel("Agregar un pedido");
		lblBuscar.setBounds(201, 13, 395, 49);
		lblBuscar.setForeground(Color.WHITE);
		lblBuscar.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 25));
		lblBuscar.setBackground(Color.WHITE);
		getContentPane().add(lblBuscar);
		
		final JPanel panel = new JPanel();
		panel.setVisible(false);
		panel.setLayout(null);
		panel.setOpaque(false);
		panel.setBounds(337, 57, 433, 361);
		getContentPane().add(panel);
		
		final JLabel textNombre = new JLabel("");
		textNombre.setHorizontalAlignment(SwingConstants.LEFT);
		textNombre.setForeground(Color.WHITE);
		textNombre.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textNombre.setBounds(83, 55, 311, 18);
		panel.add(textNombre);
		
		final JLabel textCuit = new JLabel("");
		textCuit.setHorizontalAlignment(SwingConstants.LEFT);
		textCuit.setForeground(Color.WHITE);
		textCuit.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textCuit.setBounds(83, 21, 311, 18);
		panel.add(textCuit);
		
		
		JLabel label = new JLabel("Cuit:");
		label.setHorizontalAlignment(SwingConstants.LEFT);
		label.setForeground(Color.WHITE);
		label.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		label.setBounds(0, 20, 92, 18);
		panel.add(label);
		
		JLabel label_1 = new JLabel("Nombre:");
		label_1.setHorizontalAlignment(SwingConstants.LEFT);
		label_1.setForeground(Color.WHITE);
		label_1.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		label_1.setBounds(0, 55, 92, 18);
		panel.add(label_1);
		
		final JLabel lblDireccion = new JLabel("Dirección");
		lblDireccion.setHorizontalAlignment(SwingConstants.LEFT);
		lblDireccion.setForeground(Color.WHITE);
		lblDireccion.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		lblDireccion.setBounds(0, 90, 76, 18);
		panel.add(lblDireccion);
		
		final JLabel provincia = new JLabel("Provincia:");
		provincia.setHorizontalAlignment(SwingConstants.LEFT);
		provincia.setForeground(Color.WHITE);
		provincia.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		provincia.setBounds(0, 149, 76, 18);
		provincia.setVisible(false);
		panel.add(provincia);
		
		final JLabel labelContacto = new JLabel("Contacto:");
		labelContacto.setHorizontalAlignment(SwingConstants.LEFT);
		labelContacto.setForeground(Color.WHITE);
		labelContacto.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		labelContacto.setBounds(0, 180, 76, 18);
		panel.add(labelContacto);
		
		final JLabel textCalle = new JLabel("");
		textCalle.setHorizontalAlignment(SwingConstants.LEFT);
		textCalle.setForeground(Color.WHITE);
		textCalle.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textCalle.setBounds(93, 90, 338, 18);
		panel.add(textCalle);
		
		final JLabel textLocalidadyProv = new JLabel("");
		textLocalidadyProv.setHorizontalAlignment(SwingConstants.LEFT);
		textLocalidadyProv.setForeground(Color.WHITE);
		textLocalidadyProv.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textLocalidadyProv.setBounds(83, 118, 327, 18);
		panel.add(textLocalidadyProv);
		
		textTelefono = new JTextField();
		textTelefono.setBounds(83, 147, 311, 22);
		panel.add(textTelefono);
		textTelefono.setColumns(10);
		
		textContacto = new JTextField();
		textContacto.setColumns(10);
		textContacto.setBounds(83, 178, 311, 22);
		panel.add(textContacto);
		
		editarCalle = new JTextField();
		editarCalle.setBounds(83, 86, 209, 22);
		panel.add(editarCalle);
		editarCalle.setColumns(10);
		editarCalle.setVisible(false);
		
		final JLabel editarAltura = new JLabel("Nº:");
		editarAltura.setHorizontalAlignment(SwingConstants.LEFT);
		editarAltura.setForeground(Color.WHITE);
		editarAltura.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		editarAltura.setBounds(296, 90, 37, 18);
		editarAltura.setVisible(false);
		panel.add(editarAltura);
		
		textAltura = new JTextField();
		textAltura.setColumns(10);
		textAltura.setBounds(318, 86, 76, 22);
		textAltura.setVisible(false);
		panel.add(textAltura);
		
		final JLabel editarLocalidad = new JLabel("Localidad:");
		editarLocalidad.setHorizontalAlignment(SwingConstants.LEFT);
		editarLocalidad.setForeground(Color.WHITE);
		editarLocalidad.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		editarLocalidad.setBounds(0, 118, 76, 18);
		editarLocalidad.setVisible(false);
		panel.add(editarLocalidad);
		
		textEditarLocalidad = new JTextField();
		textEditarLocalidad.setColumns(10);
		textEditarLocalidad.setBounds(83, 116, 311, 22);
		textEditarLocalidad.setVisible(false);
		panel.add(textEditarLocalidad);
		
		textProvincia = new JTextField();
		textProvincia.setColumns(10);
		textProvincia.setBounds(83, 149, 311, 22);
		textProvincia.setVisible(false);
		panel.add(textProvincia);
		
		final JLabel labelTelefono = new JLabel("Telefono:");
		labelTelefono.setHorizontalAlignment(SwingConstants.LEFT);
		labelTelefono.setForeground(Color.WHITE);
		labelTelefono.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		labelTelefono.setBounds(0, 151, 76, 18);
		panel.add(labelTelefono);
		
		final JLabel lblCalle = new JLabel("Calle");
		lblCalle.setHorizontalAlignment(SwingConstants.LEFT);
		lblCalle.setForeground(Color.WHITE);
		lblCalle.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		lblCalle.setBounds(0, 91, 76, 18);
		lblCalle.setVisible(false);
		panel.add(lblCalle);
		
		
		final JLabel longitud = new JLabel("Longitud");
		longitud.setHorizontalAlignment(SwingConstants.LEFT);
		longitud.setForeground(Color.WHITE);
		longitud.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		longitud.setBounds(0, 214, 76, 18);
		longitud.setVisible(false);
		panel.add(longitud);
		
		textLongitud = new JTextField();
		textLongitud.setColumns(10);
		textLongitud.setBounds(83, 212, 311, 22);
		textLongitud.setVisible(false);
		panel.add(textLongitud);
		
		final JLabel latitud = new JLabel("Latitud:");
		latitud.setHorizontalAlignment(SwingConstants.LEFT);
		latitud.setForeground(Color.WHITE);
		latitud.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		latitud.setBounds(0, 182, 76, 18);
		latitud.setVisible(false);
		panel.add(latitud);
		
		textLatitud = new JTextField();
		textLatitud.setColumns(10);
		textLatitud.setBounds(83, 180, 311, 22);
		textLatitud.setVisible(false);
		panel.add(textLatitud);
		
		
		final JButton btnEditar = new JButton("Editar");
		btnEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{
				
				bandera = true;
				//cambia posiciones al telefono y contacto
				labelTelefono.setBounds(0, 245, 76, 18);
				labelContacto.setBounds(0, 275, 76, 18);
				textContacto.setBounds(83, 275, 311, 22);
				textTelefono.setBounds(83, 245, 311, 22);
				
				//borra de pantalla la direccion de la empresa
				textLocalidadyProv.setVisible(false);
				lblDireccion.setVisible(false);
				textCalle.setVisible(false);
				
			
				//habilita a agregar una direccion nueva al pedido
				
				textEditarLocalidad.setVisible(true);
				editarLocalidad.setVisible(true);
				
				editarAltura.setVisible(true);
				textAltura.setVisible(true);
				
				editarCalle.setVisible(true);
				lblCalle.setVisible(true);
				
				provincia.setVisible(true);
				textProvincia.setVisible(true);
				
				btnEditar.setVisible(false);
				
				
				textLongitud.setVisible(true);
				textLatitud.setVisible(true);
				latitud.setVisible(true);
				longitud.setVisible(true);
			
				
				
				
			}
		});
		btnEditar.setBounds(318, 101, 92, 25);
		panel.add(btnEditar);
		
	
	
		
		JButton btnAgregar = new JButton("Agregar");
		btnAgregar.addActionListener(new ActionListener() {
			private double latitud;
			private String calle;
			private Integer altura;
			private String localidad;
			private String provincia;
			private Double longitud;

			public void actionPerformed(ActionEvent arg0) 
			{
			
				
				System.out.println(arg0.getSource()==btnEditar);
				if(bandera)
					{
	System.out.println("Entro+++++++++++++++++++++++++++++++++");
						calle = editarCalle.getText();
						System.out.println("Calle:" + calle);
						altura = Integer.parseInt(textAltura.getText());
						localidad = textEditarLocalidad.getText();
						provincia = textProvincia.getText();
						
						this.latitud = Double.parseDouble(textLatitud.getText());
						longitud = Double.parseDouble(textLongitud.getText());
						
					}
				else
					{
					calle = buscado.domicilio.getDireccion().getCalle();
					altura = buscado.domicilio.getDireccion().getAltura();
					localidad = buscado.domicilio.getDireccion().getLocalidad();
					provincia = buscado.domicilio.getDireccion().getProvincia();
					
					latitud = buscado.domicilio.getCoordenada().getLatitud();
					longitud = buscado.domicilio.getCoordenada().getLongitud();
					}
					
				Direccion direccion = new Direccion(provincia, localidad, calle, altura);
				System.out.println("Direccion");
				System.out.println(direccion);

				
				
				String telefono = textTelefono.getText();
				String contacto = textContacto.getText();
				
				String obs = "";
				
				Pedido nuevo = new Pedido(buscado, contacto, telefono, obs, direccion, latitud, longitud);
				pedidosGeoLoc.agregarPedido(nuevo);
				
				System.out.println(nuevo);
				
				}
			
		});
		btnAgregar.setBounds(180, 323, 92, 25);
		panel.add(btnAgregar);
		
	
		
		
		final JTextField textBusqueda = new JTextField();
		textBusqueda.setBounds(39, 136, 213, 22);
		getContentPane().add(textBusqueda);
		textBusqueda.setColumns(10);
		
		
		
		JLabel lblBsquedaPorNombre = new JLabel("Búsqueda por nombre o cuit:");
		lblBsquedaPorNombre.setBounds(39, 91, 213, 36);
		lblBsquedaPorNombre.setForeground(Color.WHITE);
		lblBsquedaPorNombre.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		getContentPane().add(lblBsquedaPorNombre);
		
		
		final JLabel lbNoExiste = new JLabel("El cliente no existe");
		lbNoExiste.setBounds(313, 109, 421, 70);
		getContentPane().add(lbNoExiste);
		lbNoExiste.setForeground(Color.RED);
		lbNoExiste.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 20));
		lbNoExiste.setHorizontalAlignment(SwingConstants.CENTER);
		lbNoExiste.setVisible(false);
		
		
		JButton btnIr = new JButton("Ir...");
		btnIr.setBounds(96, 171, 97, 25);
		getContentPane().add(btnIr);
		btnIr.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{	
				String texto = textBusqueda.getText();
				System.out.println("El texto buscado es " + texto);
				
				buscado = pedidosGeoLoc.buscarCliente(texto);
				
				if(buscado ==null)
					lbNoExiste.setVisible(true);
				else
					{
					lbNoExiste.setVisible(false);
					
					panel.setVisible(true);
					textCuit.setText(buscado.getCuit());
					textNombre.setText(buscado.getNombre());
					textCalle.setText(buscado.getDomicilio().getDireccion().getCalle()
							+ " " + buscado.getDomicilio().getDireccion().getAltura() );
					textLocalidadyProv.setText(buscado.getDomicilio().getDireccion().getLocalidad()+
							"," + buscado.getDomicilio().getDireccion().getProvincia());
					
					}
					
				

			}
		});
				
				JButton btnVolver = new JButton("Volver");
				btnVolver.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						dispose();
					}
				});
				btnVolver.setBounds(96, 423, 97, 25);
				getContentPane().add(btnVolver);
		
				JLabel fondo = new JLabel("");
				fondo.setHorizontalAlignment(SwingConstants.TRAILING);
				fondo.setBounds(0, 0, 798, 460);
				fondo.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 18));
				fondo.setIcon(new ImageIcon("Imagenes/azulFondo.jpeg"));
				getContentPane().add(fondo);
		
		
		
	
		
		
	}
}


	
	

